实现Callable接口,什么时候调用call()方法 您所在的位置:网站首页 主线程调用CALL 有延迟吗 实现Callable接口,什么时候调用call()方法

实现Callable接口,什么时候调用call()方法

#实现Callable接口,什么时候调用call()方法| 来源: 网络整理| 查看: 265

最近,项目中经常接触线程,特别是在推送MQ的时候,都是使用线程来执行操作。在这里,用一个简单的例子来整理一个很简单的使用方法。代码如下:

public class TestThread {     public static void main(String[] args) {         //使用main方法模拟Callable的call()方法的调用         CallableTest callableTest = new CallableTest("我是阿T");         ExecutorService executorService = Executors.newCachedThreadPool();         System.out.println("开始执行call()方法!");         Future future = executorService.submit(callableTest);         try {             System.out.println("这里是为了测试一下程序的执行。");             System.out.println("调用call()方法返回的结果:"+future.get());         } catch (InterruptedException e) {             e.printStackTrace();         } catch (ExecutionException e) {             e.printStackTrace();         }     } } class CallableTest implements Callable{     private String name;     public CallableTest(String name){         this.name = name;     }     @Override     public Object call() throws Exception {         System.out.println("调用Callable的call()方法进行逻辑处理开始!");         return name;//call()方法执行完后返回的数据     } }

代码执行的结果:

开始执行call()方法! 这里是为了测试一下程序的执行。 调用Callable的call()方法进行逻辑处理开始! 调用call()方法返回的结果:我是阿T

从结果中可以看到,在线程去执行call()方法的时候,程序是继续往下走的,等到方法执行完毕之后,会返回name,而这个name在CallableTest实例化的时候,已经将“我是阿T”赋值给了name,所以,最后返回的结果是“我是阿T”。

 



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有